socketserver源码剖析: |
您所在的位置:网站首页 › socket_listen php › socketserver源码剖析: |
import socketimport threadingimport select def process(request, client_address): #模拟定义的handle()方法,这个方法内的代码是socket server与Client端交互代码 print (request,client_address) conn = request conn.sendall(‘欢迎致电 10086,请输入1xxx,0转人工服务.‘) flag = True while flag: data = conn.recv(1024) if data == ‘exit‘: flag = False elif data == ‘0‘: conn.sendall(‘通过可能会被录音.balabala一大推‘) else: conn.sendall(‘请重新输入.‘) sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sk.bind((‘127.0.0.1‘,8002))sk.listen(5) while True: #这里一个while循环循环监控sk文件句柄 r, w, e = select.select([sk,],[],[],1) print (‘looping‘) if sk in r: #当sk文件句柄发生变化的时候说明是新的客户端连接过来了 print (‘get request‘) request, client_address = sk.accept() t = threading.Thread(target=process, args=(request, client_address)) #创建一个线程,并调用自己定义的process方法执行~然后样客户端与之交互 t.daemon = False t.start() sk.close() |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |